home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Programming / SecalDemo / Projects / Tutorials / x_MusicDemo.scl < prev    next >
Text File  |  1998-06-24  |  2KB  |  48 lines

  1. /******************************************************************************\
  2. **  Music example (uses the Extension) for Secal                              **
  3. **  Requires Kickstart 2                                                      **
  4. \******************************************************************************/
  5.  
  6.  
  7. go main;                                    # EXECUTION STARTS AT THE BEGINNING OF THE
  8.                                                     # PROGRAM, GO TO THE MAIN CODE
  9.  
  10.  
  11. include "ext/ext.inc";        # COMPILE THE HEADER INTERFACE FOR EXTENSION TOO
  12. inclib "ext/ext.lib";            # USE EXT.LIB AS A LINK LIBRARY
  13.  
  14.  
  15. main:                                            # MAIN ENTRY POINT
  16. push d2\a2;                                # SAVE MODIFIED NONVOLATILE REGISTERS
  17.  
  18. x_Init;                                        # INITIALIZE EXTENSION
  19. if d0 then
  20.     x_AudioStart(%1111);        # START AUDIO SUBSYSTEM
  21.     if d0 then
  22.         x_Mus_Load("data/mod.corn",%1111); a2:=a0;
  23.                                                 # LOAD AND INIT MUSIC, STRORE PTR IN A2
  24.         if a2 then
  25.             x_Mus_Play(a2,0);                # START PLAYING
  26.  
  27.             while [$dff016] and $400 do x_Delay(1);;
  28.                                                 # DIRTY CHECK FOR RIGHT MOUSE BUTTON
  29.  
  30.             for d2.uw:=$fc00 downto 0 step 1024 do    # VOLUME FADE LOOP
  31.                 x_Delay(1);                        # LITTLE DELAY
  32.                 x_Mus_Modify(a2,-1,d2);            # MODIFY VOLUME ONLY
  33.             ;
  34.  
  35.             x_Mus_Stop(a2);                # STOP PLAYING
  36.         ;
  37.     ;
  38.     x_Done;                                # SHUT DOWN EXTENSION. THIS FUNCTION WILL ALSO FREE
  39.                                                 # EVERYTHING ALLOCATED THRU THE EXTENSION, WHICH WE
  40.                                                 # DIDN'T FREE ALLREADY (SCREENS, MUSIC, ANIMS, ETC.)
  41. ;
  42.  
  43. d0.l:=0;                                # RETURN CODE FOR DOS
  44.  
  45. pop d2\a2;                            # RESTORE NONVOLATILE REGISTERS
  46. rts;                                        # RETURN
  47.  
  48.